package com.ascendere9.ff.pof.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author: ThanhNH
 */
public class DateTimeUtil {

	// ===================================================================
	// Constants
	// ===================================================================

	// ===================================================================
	// Fields
	// ===================================================================

	// ===================================================================
	// Constructors
	// ===================================================================

	// ===================================================================
	// Getter & Setter
	// ===================================================================
	public static long getCurrentTimeMillis() {
		return System.currentTimeMillis();
	}

	public static String convertToString(long pTime, DateTimeFormat pDateTimeFormat) {
		return convertToString(pTime, pDateTimeFormat.toString());
	}

	public static String convertToString(long pTime, String pFormat) {
		String time = null;
		if (pTime != 0) {
			SimpleDateFormat format = new SimpleDateFormat(pFormat);
			time = format.format(pTime);
		}
		return time;
	}

	public static long convertToLong(String pTime, DateTimeFormat pDateTimeFormat) {
		return convertToLong(pTime, pDateTimeFormat.toString());
	}

	public static long convertToLong(String pTime, String pFormat) {
		long time = -1;
		if (pTime != null) {
			SimpleDateFormat format = new SimpleDateFormat(pFormat);
			try {
				Date date = format.parse(pTime);
				time = date.getTime();
			} catch (ParseException e) {
				e.printStackTrace();
			}
		}
		return time;
	}

	// ===================================================================
	// Methods from BaseClass & Interfaces
	// ===================================================================

	// ===================================================================
	// Methods
	// ===================================================================

	// ===================================================================
	// Methods for SubClass
	// ===================================================================

	// ===================================================================
	// Inner and Anonymous Classes
	// ===================================================================
	public static enum DateTimeFormat {
		DATE("yyyy-MM-dd"), TIME("HH:mm:ss"), DATE_TIME("yyyy-MM-dd HH:mm:ss"), FULL_DATE_TIME(
				"E, MMM dd yyyy, h:mmaa");

		private String mFormat;

		private DateTimeFormat(String pFormat) {
			this.mFormat = pFormat;
		}

		@Override
		public String toString() {
			return mFormat;
		}
	}

}
